<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 0.1+0.2 = 0.3 (false) 在js中存在着精度问题
        // 解决这种方法最常见的是设置一个误差范围值  通常称为"机器精度"
        // 对于js的数字来说 这个值通常是2^-52
        // 从ES6开始 这个值被定义在Number.EPSILON中
        // 也可以在ES6之前的版本写polyfill(补丁)
        if(!Number.EPSILON){
            Number.EPSILON = Math.pow(2,-52);
        }
        // 可以使用Number.EPSILON来比较两个数字是否相等(在指定的误差范围内)
        function numbersCloseEnoughToEqual(n1,n2){
            // Math.abs()方法 用于求绝对值
            return Math.abs(n1-n2) < Number.EPSILON;
        }

        var a = 0.1 + 0.2;
        var b = 0.3;

        console.log(numbersCloseEnoughToEqual(a,b));
        console.log(numbersCloseEnoughToEqual(0.0000001,0.0000002));
    </script>
</body>
</html>